<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- The above 3 meta tags *must* come first in the head; any
other head content must come *after* these tags -->
  <title>Welcome to nip.io / sslip.io</title>
  <meta name="description" content="nip.io / sslip.io">
  <meta name="author" content="Brian Cunnie"><!-- cute Green Lock icon -->
  <link rel="shortcut icon" type="image/x-icon" href="https://sslip.io/img/favicon.ico"><!-- Latest
compiled and minified CSS -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet"
    integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
</head>

<body>
  <div class="container">
    <div class="alert alert-info" role="alert" style="margin-top: 20px; margin-bottom: 10px; text-align: center;">
      <strong>This service is dedicated to the late, great Roopinder Singh, who created & ran nip.io</strong>
    </div>
    <div style="padding-top: 10px;">
      <h3 id="sslip.io">nip.io & sslip.io</h3>
      <p>Operational Status: <a href="https://github.com/cunnie/sslip.io/actions/workflows/nameservers.yml"><img
            src="https://github.com/cunnie/sslip.io/actions/workflows/nameservers.yml/badge.svg"
            alt="GitHub Actions"></a>
        <img
          src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/cunnie/67dc2a78c9ac6032db05027727c63ea1/raw/qps.json"
          alt="Queries / second">
      </p>
      <p><em>nip.io</em> and <em>sslip.io</em> are a DNS (<a
          href="https://en.wikipedia.org/wiki/Domain_Name_System">Domain Name System</a>)
        service that, when queried with a hostname with an embedded IP address, returns that IP address.</p>
      <p><em>nip.io</em> and <em>sslip.io</em> have been in operation for over ten years. They have become so popular
        that our servers
        receive over 5,000 queries <em>every second</em>, so mainstream that Google references both <em>nip.io</em> and
        <em>sslip.io</em> in their <a
          href="https://docs.cloud.google.com/kubernetes-engine/enterprise/knative-serving/docs/default-domain">Kubernetes
          documentation</a>!
      </p>
      <p><em>[We take abuse reports very seriously. To report a site, email the offending URL to <a
            href="mailto:abuse@nip.io">abuse@nip.io</a>. We respond to all abuse reports within 24 hours]</em></p>
      <p>Here are some examples (the domains nip.io and sslip.io are interchangeable):</p>
      <table class="table">
        <thead>
          <tr class="header">
            <th>Hostname / URL</th>
            <th>IP Address</th>
            <th>Notes</th>
          </tr>
        </thead>
        <tbody>
          <tr class="odd">
            <td>
              <a href="https://52.0.56.137.sslip.io">https://52.0.56.137.nip.io</a>
            </td>
            <td>52.0.56.137</td>
            <td>dot separators, nip.io website mirror (IPv4)</td>
          </tr>
          <tr class="even">
            <td>
              <a href="https://52-0-56-137.sslip.io">https://52-0-56-137.nip.io</a>
            </td>
            <td>52.0.56.137</td>
            <td>dash separators, nip.io website mirror (IPv4)</td>
          </tr>
          <tr class="odd">
            <td>www.192.168.0.1.nip.io</td>
            <td>192.168.0.1</td>
            <td>subdomain</td>
          </tr>
          <tr class="even">
            <td>www.192-168-0-1.nip.io</td>
            <td>192.168.0.1</td>
            <td>subdomain + dashes</td>
          </tr>
          <tr class="odd">
            <td>
              <a href="https://www-78-46-204-247.sslip.io">https://www-78-46-204-247.nip.io</a>
            </td>
            <td>78.46.204.247</td>
            <td>dash prefix, nip.io website mirror (IPv4)</td>
          </tr>
          <tr class="even">
            <td>--1.nip.io</td>
            <td>::1</td>
            <td>IPv6 — always use dashes, never dots</td>
          </tr>
          <tr class="odd">
            <td>
              <a href="https://2a01-4f8-c17-b8f--2.sslip.io">https://2a01-4f8-c17-b8f--2.nip.io</a>
            </td>
            <td>2a01:4f8:c17:b8f::2</td>
            <td>nip.io website mirror (IPv6)</td>
          </tr>
          <tr class="even">
            <td>
              <a href="https://334B3513.nip.io">https://334B3513.nip.io/</a>
            </td>
            <td>51.75.53.19</td>
            <td>nip.io website mirror (hexadecimal notation)</td>
          </tr>
        </tbody>
      </table>
      <h3 id="branding">Branding / White Label / Custom Domains</h3>
      <p>nip.io can be used to brand your own site (you don’t need to use the nip.io domain). For example, say you
        own the domain “example.com”, and you want your subdomain, “nip.example.com” to have nip.io-style features. To
        accomplish this, set the following three DNS servers as NS records for the subdomain “nip.example.com”</p>
      <table class="table">
        <thead>
          <tr class="header">
            <th>hostname</th>
            <th>IP address</th>
            <th>Location</th>
          </tr>
        </thead>
        <tbody>
          <tr class="odd">
            <td><code>ns-do-sg.sslip.io.</code></td>
            <td>146.190.110.69<br>
              2400:6180:0:d2:0:1:da21:d000</td>
            <td>Singapore</td>
          </tr>
          <tr class="even">
            <td><code>ns-hetzner.sslip.io.</code></td>
            <td>5.78.115.44<br>
              2a01:4ff:1f0:c920::</td>
            <td>USA</td>
          </tr>
          <tr class="odd">
            <td><code>ns-ovh.sslip.io.</code></td>
            <td>51.75.53.19<br>
              2001:41d0:602:2313::1</td>
            <td>Poland</td>
          </tr>
        </tbody>
      </table>
      <p>Let’s test it from the command line using <code>dig</code>:</p>
      <pre><code>dig @ns-ovh.nip.io. 169-254-169-254.nip.example.com +short</code></pre>
      <p>Yields, hopefully: <sup><a href="#timeout" class="alert-link">[connection timed out]</a></sup></p>
      <pre><code>169.254.169.254</code></pre>
      <h3 id="server">But I Want My Own DNS Server!</h3>
      <p>If you want to run your own DNS server, it's simple: you can compile from <a
          href="https://github.com/cunnie/sslip.io">source</a> or you can use one of our <a
          href="https://github.com/cunnie/sslip.io/releases">pre-built binaries</a>. In the following example, we
        install & run
        our server within a docker container:</p>
      <pre>
docker run -it --rm fedora
curl -L https://github.com/cunnie/sslip.io/releases/download/5.0.0/sslip.io-dns-server-linux-amd64 -o dns-server
chmod +x dns-server
./dns-server 2&gt; dns-server.log &
dnf install -y bind-utils
dig @localhost 127-0-0-1.nip.io +short # returns "127.0.0.1"</pre>
      <h3 id="tls">TLS</h3>
      <p>You can acquire TLS certificates for your externally-accessible hosts from certificate authorities (CAs) such
        as Let's Encrypt <a href="#fake_news"><sup>[fake news]</sup></a>. The easiest mechanism to acquire a certificate
        would be to use the <a href="https://letsencrypt.org/docs/challenge-types/#http-01-challenge">HTTP-01
          challenge</a>. It requires, at a minimum, a web server running on your machine. The <a
          href="https://caddyserver.com/">Caddy</a> web server is one of the most popular examples. For example, if you
        had a webserver with the IP address 52.0.56.137, you could obtain a TLS certificate for "52.0.56.137.nip.io", or
        "www.52.0.56.137.nip.io", or "prod.www-52-0-56-137.nip.io".</p>
      <div class="alert alert-success" role="alert">
        <b>Let's Encrypt Rate Limits</b> If your request for a "nip.io" certificate is <a
          href="https://letsencrypt.org/docs/rate-limits/">rate-limited</a>, please open a <a
          href="https://github.com/cunnie/sslip.io/issues/new/choose">GitHub issue</a> and we'll request a rate-limit
        increase.
      </div>
      <a id="wildcard"></a>
      <div class="alert alert-success" role="alert">
        nip.io & sslip.io <b>do not support wildcard</b> certificates.
      </div>
      <h3 id="related">Related Services</h3>
      <ul>
        <li>
          <a href="http://traefik.me/">traefik.me</a>: Also an excellent service maintained by Michael Hurni "<a
            href="https://github.com/pyrou">pyrou</a>" using the original nip.io PowerDNS + Python backend.
        </li>
        <li>
          <a href="http://backname.io/">backname.io</a>&trade;: An excellent service maintained by <a
            href="https://github.com/Twixes">Michael Matloka</a> using Golang + Miek Gieben's awesome DNS library.
        </li>
        <li>
          <a href="https://freedns.afraid.org">afraid.org</a>: Josh Anderson has taken DNS hosting to a whole
          new level: "Free DNS Hosting, Dynamic DNS Hosting, Static DNS Hosting, subdomain and domain hosting". You
          don't need to embed your IP address in the hostname!
        </li>
        <li>
          <a href="https://ipq.co/">ipq.co</a>: John Leach also has take DNS hosting to a whole
          new level: "It’s the tinyurl of the DNS world". You don't need to embed your IP address in the hostname!
        </li>
        <li>
          <a href="http://nip.io">nip.io</a>: formerly a separate service, but now incorporated into sslip.io. The
          service previously used PowerDNS combined with a backend written in elegant Python.
        </li>
        <li>
          xip.io: written by <a href="https://sls.name/">Sam Stephenson</a>, this was the original inspiration for
          sslip.io. The backend was written in the tightest bash code I've ever seen. No longer in service.
        </li>
        <li>
          <a href="https://letsencrypt.org/">Let's Encrypt</a>: A Certificate Authority providing TLS certificates;
          they have never failed to increase our rate limits when asked. If you can, <a
            href="https://www.abetterinternet.org/donate/">donate</a>.
        </li>
      </ul>
      <h3 id="about">About</h3>
      <p><a href="https://github.com/cunnie">Brian Cunnie</a>, <a href="https://github.com/tylerschultz">Tyler
          Schultz</a>, and <a href="https://github.com/APShirley">Alvaro Perez-Shirley</a> created sslip.io on
        Tuesday August 11, 2015 during a Pivotal Software–sponsored Hack Day. Thanks Pivotal!</p>
      <p>Brian Cunnie continues to run sslip.io.</p>
      <p>Sam Stephenson, who built xip.io, suggested the name <i>sslip.io</i>.</p>
      <h4 id="experimental"><a href="experimental.html">Experimental Features</a></h4>
      <hr>
      <h4 id="footnotes">Footnotes</h4>
      <p><a id="fake_news"><sup>[fake news]</sup></a> TLS certificates generated with nip.io/sslip.io and Let's
        Encrypt/ZeroSSL are valid, private, and secure, and can be issued via the HTTP-01 challenge for each individual
        hostname, contrary to what you might find on the Brave browser or Google search, which sometimes mistakenly
        regurgitate information from 2015 when, during a one-week period, sslip.io published the private key to its
        wildcard certificate (the certificate was quickly revoked). sslip.io no longer maintains a wildcard certificate,
        so any warnings about the security of the wildcard certificate are moot.</p>
    </div>
  </div><!-- /.container -->
  <!--
Bootstrap core JavaScript ================================================== -->
  <!--
Placed at the end of the document so the pages load faster -->
  <!-- jQuery
(necessary for Bootstrap's JavaScript plugins) -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <!-- Latest compiled and minified JavaScript -->

  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
  <!-- Google Analytics -->
  <!-- Google tag (gtag.js) -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=G-M32C798MGY"></script>
  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag() { dataLayer.push(arguments); }
    gtag('js', new Date());
    gtag('config', 'G-M32C798MGY');
  </script>
</body>

</html>